package com.xul.srb.core.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xul.srb.core.pojo.entity.UserInfo;
import com.xul.srb.core.pojo.query.UserInfoQuery;
import com.xul.srb.core.pojo.vo.LoginVO;
import com.xul.srb.core.pojo.vo.RegisterVO;
import com.xul.srb.core.pojo.vo.UserIndexVO;
import com.xul.srb.core.pojo.vo.UserInfoVO;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 用户基本信息 服务类
 * </p>
 *
 * @author xul
 * @since 2021-11-06
 */
public interface UserInfoService extends IService<UserInfo> {

    /**
     * 用户注册
     *
     * @param registerVO
     */
    void register(RegisterVO registerVO);

    /**
     * 会员登录
     *
     * @param loginVO
     * @return
     */
    UserInfoVO login(LoginVO loginVO, HttpServletRequest request);

    /**
     * 获取积分列表
     *
     * @param page
     * @param limit
     * @param userInfoQuery
     * @return
     */
    IPage<UserInfo> listPage(Long page, Long limit, UserInfoQuery userInfoQuery);


    /**
     * 锁定和解锁
     *
     * @param id
     * @param status
     */
    void lock(Long id, Integer status);

    /**
     * 校验手机号是否注册
     *
     * @param mobile
     * @return
     */
    boolean checkMobile(String mobile);

    /**
     * 获取个人空间用户信息
     *
     * @param userId
     * @return
     */
    UserIndexVO getIndexUserInfo(Long userId);

    /**
     * 根据bindCode 查询手机号
     * @param bindCode
     * @return
     */
    String getMobileByBindCode(String bindCode);
}
